#include <my_header.h>

typedef enum
{
    CMD_TYPE_INIT = -1,
    CMD_TYPE_CD = 1,
    CMD_TYPE_LS,
    CMD_TYPE_PWD,
    CMD_TYPE_MKDIR,
    CMD_TYPE_RMDIR,
    CMD_TYPE_REMOVE,
    CMD_TYPE_PUTS,
    CMD_TYPE_GETS

} CmdType;

typedef struct train_s
{
    int length;      //  火车头 固定4Bytes
    int _cmdType;    //  命令类型
    char buff[1024]; //  火车车厢 上限为1024byte
} train_t;

int parseCommand(const char *pinput, train_t *pt);
void splitString(const char *pstrs, const char *delimiter, char *tokens[],
                 int max_tokens, int *pcount);
int getCommandType(const char *str);
int splitcmd(const char *pinput, const char *delimiter, char *tokens[],
             int max_tokens, int *pcount);
int gets_client(int netfd, const train_t *train);
//  netfd:服务器端文件描述符
//  train:服务器端传下来的文件名小火车

int puts_client(
    int netfd,
    const char *filename); //  netfd:服务器端文件描述符    filename:上传文件名
